<?php

/**
 * This is the model class for table "tbl_acentral".
 *
 * The followings are the available columns in table 'tbl_acentral':
 * @property integer $id
 * @property string $Arquivo
 * @property integer $CodArea
 * @property string $Ano
 * @property string $Assunto1
 * @property string $Assunto2
 * @property string $Assunto3
 * @property integer $CodUnidade
 * @property integer $Tipo
 * @property integer $Empresa
 * @property string $Periodo
 * @property string $Responsavel
 * @property string $LocalCaixa
 * @property string $Observacao
 * @property string $Localizacao
 * @property integer $Temporalidade
 * @property string $Descarte
 * @property integer $Emprestado
 * @property integer $idProjeto
 */
class Acentral extends CActiveRecord
{
        public $sigla_unidade;
	public $sigla_area;
        public $sigla_empresa;
        /**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'tbl_acentral';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			//array('Tipo, Empresa', 'required'),
			array('CodArea, CodUnidade, Tipo, Empresa, Temporalidade, Emprestado, idProjAcentral', 'numerical', 'integerOnly'=>true),
			array('Arquivo', 'length', 'max'=>15),
			array('Ano', 'length', 'max'=>6),
			array('Assunto1, Assunto2', 'length', 'max'=>150),
			array('Assunto3', 'length', 'max'=>250),
			array('Periodo, Responsavel, Descarte', 'length', 'max'=>20),
			array('LocalCaixa, Localizacao', 'length', 'max'=>30),
			array('Observacao', 'length', 'max'=>100),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('id, Arquivo, CodArea, sigla_area, Ano, Assunto1, Assunto2, Assunto3, CodUnidade, sigla_unidade, Tipo, Empresa, sigla_empresa, Periodo, Responsavel, LocalCaixa, Observacao, Localizacao, Temporalidade, Descarte, Emprestado, idProjAcentral, DataEmp, NomeEmp, RamalEmp', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
                    'Unidade' => array(self::BELONGS_TO, 'Unidade', 'CodUnidade'),
                    'Area' => array(self::BELONGS_TO, 'Area', 'CodArea'),
                    'Empresa' => array(self::BELONGS_TO, 'Empresa', 'Empresa'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'Arquivo' => 'Arquivo',
			'CodArea' => 'Área',
                        'SiglaArea' => 'Área', //
			'Ano' => 'Ano',
			'Assunto1' => 'Assunto',
			'Assunto2' => 'Sub Assunto',
			'Assunto3' => 'Sub Assunto 2',
                        'SiglaUnidade' => 'Unidade', //
			'CodUnidade' => 'Unidade',
			'Tipo' => 'Tipo',
			'Empresa' => 'Empresa',
                        'SiglaEmp' => 'Empresa', // De outra tabela
			'Periodo' => 'Periodo',
			'Responsavel' => 'Responsavel',
			'LocalCaixa' => 'Local Caixa',
			'Observacao' => 'Observacao',
			'Localizacao' => 'Localizacao',
			'Temporalidade' => 'Temporalidade',
			'Descarte' => 'Descarte',
			'Emprestado' => 'Emprestado',
			'idProjAcentral' => 'Id Projeto',
                        'DataEmp' => 'Data Empréstimo',
                        'NomeEmp' => 'Emprestado Para',
                        'RamalEmp' => 'Ramal',
                        
                    
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id);
		$criteria->compare('Arquivo',$this->Arquivo,true);
		$criteria->compare('CodArea',$this->CodArea);
                //$criteria->with = array('tbl_unidade, tbl_area');
                $criteria->with = array('Unidade', 'Area','Empresa');
                $criteria->compare('Unidade.SiglaUnidade', $this->sigla_unidade, true );
                $criteria->compare('Area.SiglaArea', $this->sigla_area, true );
                $criteria->compare('Empresa.SiglaEmp', $this->sigla_empresa, true );
		$criteria->compare('Ano',$this->Ano,true);
		$criteria->compare('Assunto1',$this->Assunto1,true);
		$criteria->compare('Assunto2',$this->Assunto2,true);
		$criteria->compare('Assunto3',$this->Assunto3,true);
		$criteria->compare('CodUnidade',$this->CodUnidade);
		$criteria->compare('Tipo',$this->Tipo);
		$criteria->compare('Empresa',$this->Empresa);
		$criteria->compare('Periodo',$this->Periodo,true);
		$criteria->compare('Responsavel',$this->Responsavel,true);
		$criteria->compare('LocalCaixa',$this->LocalCaixa,true);
		$criteria->compare('Observacao',$this->Observacao,true);
		$criteria->compare('Localizacao',$this->Localizacao,true);
		$criteria->compare('Temporalidade',$this->Temporalidade);
		$criteria->compare('Descarte',$this->Descarte,true);
		$criteria->compare('Emprestado',$this->Emprestado);
		$criteria->compare('idProjAcentral', Yii::app()->user->pidproj);
                $criteria->compare('DataEmp',$this->DataEmp);
                $criteria->compare('NomeEmp',$this->NomeEmp);
                $criteria->compare('RamalEmp',$this->RamalEmp);
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Acentral the static model class
	 */
        public function getEmpOptions(){
               return array('0' => 'Não', '1' => 'Sim');
        }
        public function empText($key)
        {
            $options = $this->getEmpOptions();
            return $options[$key];
        }
        public function getUnidadeOptions()
        {
            return CHtml::listData(Unidade::model()->findAll(),'id','SiglaUnidade');
        }       
        public function unidadeText($key)
        {
            $options = $this->getUnidadeOptions();
            return $options[$key];
        }
        public function getAreaOptions()
        {
            return CHtml::listData(Area::model()->findAll(),'id','SiglaArea');
        }       
        public function areaText($key)
        {
            $options = $this->getAreaOptions();
            return $options[$key];
        }
         public function getEmpresaOptions()
        {
            return CHtml::listData(Empresa::model()->findAll(),'id','SiglaEmp');
        }       
        public function empresaText($key)
        {
            $options = $this->getEmpresaOptions();
            return $options[$key];
        }
       
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}
